/**
 * 使用类型别名定义一个 EmptyObject 类型，使得该类型只允许空对象赋值。
 */
interface EmptyObject{
    name:string,
    age:number
}
//正常赋值
const shouldPass:EmptyObject={
   name:'123',
   age:18
}
//编译错误
const shouldFail: EmptyObject = { // 将出现编译错误
    prop: "BAWEI"
  }



/**
 * 定义 NonEmptyArray 工具类型，用于确保数据非空数组。
 */

// 你的实现代码
// type NonEmptyArray=
// const a: NonEmptyArray<string> = [] // 将出现编译错误
// const b: NonEmptyArray<string> = ['Hello web bawei'] // 非空数据，正常使用




 /**
 * 实现一个 IsEqual 工具类型，用于比较两个类型是否相等
 */

// 你的实现代码
// type IsEqual=any

// // 测试用例
// type E0 = IsEqual<1, 2>; // false
// type E1 = IsEqual<{ a: 1 }, { a: 1 }> // true
// type E2 = IsEqual<[1], []>; // false



/**
 * 给 FormData定义 IForm 类型，确保校验正确
 */

// 你的实现代码
//定义接口实现内容类型的约束
interface IForm{
    code:number,
    msg:string,
    data:{
        id:number,
        name:string,
        age:number
    }[]
}

const formData: IForm= {
    code: 200,
    msg: 'request success!',
    data: [
        {
            id: 1,
            name: 'wangzhan',
            age: 12
        },
        {
            id: 2,
            name: 'bawei',
            age: 20
        }
    ]
}
console.log(formData,'000');
